package xijia.plus.docs.manage.all.service;

import com.baomidou.mybatisplus.extension.service.IService;
import xijia.plus.docs.manage.all.model.dto.DocInfoDTO;
import xijia.plus.docs.manage.all.model.dto.DocInfoUpdHtmlDTO;
import xijia.plus.docs.manage.all.model.entity.DocInfo;
import xijia.plus.docs.manage.all.model.query.DocInfoQuery;
import xijia.plus.docs.manage.all.model.vo.DocInfoClientVO;
import xijia.plus.docs.manage.all.model.vo.DocInfoVO;

import java.util.List;
import java.util.Map;

/**
 * 文档表 Service
 *
 * <p>
 * ::本代码由[兮家小二]提供的代码生成器生成,如有问题,请手动修改 ::作者CSDN:https://blog.csdn.net/qq_41463655
 * </p>
 *
 * @author ws
 * @email 1720696548@qq.com
 * @date 2022-10-18 15:11:33
 */
public interface DocInfoService extends IService<DocInfo> {


    List<DocInfoVO> listKeyData(String tenantName,DocInfoQuery query);


    /**
     * 列表查询
     *
     * @return 分页列表数据
     */
    Map<Integer, List<DocInfoClientVO>> clientTree(String tenantName);


    /**
     * 列表查询
     *
     * @param query query
     * @return 分页列表数据
     */
    List<DocInfoVO> tree(String tenantName,DocInfoQuery query);


    /**
     * 查询文档的 id/name
     *
     * @return
     */
    List<DocInfoVO> listIdNames(String tenantName);


    /**
     * id 查询
     *
     * @param id id
     * @return DocInfoVO
     */
    DocInfoVO findId(String tenantName,String id);


    /**
     * 通过名称查询
     *
     * @param categoryName 分类名称
     * @param name 文章名
     * @return
     */
    DocInfoVO findByName(String tenantName,String categoryName, String name);


    /**
     * 添加
     *
     * @param dto dto
     * @return 主键id
     */
    String insert(String tenantName,DocInfoDTO dto);

    /**
     * id 编辑
     *
     * @param id  id
     * @param dto dto
     * @return boolean
     */
    boolean upd(String tenantName,String id, DocInfoDTO dto);

    /**
     * id 编辑
     *
     * @param id  id
     * @param dto dto
     * @return boolean
     */
    boolean updHtml(String tenantName,String id, DocInfoUpdHtmlDTO dto);

    /**
     * 变更父级
     *
     * @param id
     * @param pid
     * @return
     */
    boolean updPid(String tenantName,String id, String pid);


    /**
     * 启用/禁用
     *
     * @param id
     * @param disable
     * @return
     */
    boolean updDisable(String tenantName,String id, Integer disable);

    /**
     * 排序
     *
     * @param id
     * @param sort
     * @return
     */
    boolean updSort(String tenantName,String id, Integer sort);


    /**
     * 删除
     *
     * @param id id
     * @return boolean
     */
    boolean del(String tenantName,String id);


    boolean delByType(String tenantName,Integer type);


    List<DocInfo> list(String tenantName, Integer type);

    boolean remove(String tenantName, Integer type);

    boolean saveBatch(String tenantName, List<DocInfo> docInfos);


}

